import { NgModule, Type } from '@angular/core';
import { SharedModule } from '@shared';
import { NzCollapseModule } from 'ng-zorro-antd/collapse';
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
import { NzDividerModule } from 'ng-zorro-antd/divider';
import { NzRadioModule } from 'ng-zorro-antd/radio';
import { NzTagModule } from 'ng-zorro-antd/tag';
import { NzTreeModule } from 'ng-zorro-antd/tree';
import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';

import { SysLoginlogComponent } from './loginlog/loginlog.component';
import { SysLoginlogShowComponent } from './loginlog/show/show.component';
import { SysMenuEditComponent } from './menu/edit/edit.component';
import { SysMenuComponent } from './menu/menu.component';
import { SysOperationRecordComponent } from './operation-record/operation-record.component';
import { SysPermissionEditComponent } from './permission/edit/edit.component';
import { SysPermissionComponent } from './permission/permission.component';
import { SysProfileBaseComponent } from './profile/base/base.component';
import { SysProfileComponent } from './profile/profile.component';
import { SysProfileSecurityComponent } from './profile/security/security.component';
import { SysAssignMenuComponent } from './role/assign/menu/menu.component';
import { SysAssignPermissionComponent } from './role/assign/permission/permission.component';
import { SysRoleEditComponent } from './role/edit/edit.component';
import { SysRoleComponent } from './role/role.component';
import { SysRoutingModule } from './sys-routing.module';
import { SysUserAllLimitComponent } from './user/all-limit/all-limit.component';
import { SysUserEditComponent } from './user/edit/edit.component';
import { SysUserIpLimitComponent } from './user/ip-limit/ip-limit.component';
import { SysUserPasswordResetComponent } from './user/password-reset/password-reset.component';
import { SysUserRolesComponent } from './user/roles/roles.component';
import { SysUserShopsComponent } from './user/shops/shops.component';
import { SysUserComponent } from './user/user.component';

const COMPONENTS: Array<Type<void>> = [
  SysPermissionComponent,
  SysRoleComponent,
  SysMenuComponent,
  SysUserComponent,
  SysPermissionEditComponent,
  SysMenuEditComponent,
  SysRoleEditComponent,
  SysUserEditComponent,
  SysOperationRecordComponent,
  SysAssignPermissionComponent,
  SysAssignMenuComponent,
  SysUserRolesComponent,
  SysUserPasswordResetComponent,
  SysUserIpLimitComponent,
  SysUserAllLimitComponent,
  SysProfileComponent,
  SysProfileBaseComponent,
  SysProfileSecurityComponent,
  SysUserShopsComponent,
  SysLoginlogComponent,
  SysLoginlogShowComponent
];

@NgModule({
  imports: [
    SharedModule,
    SysRoutingModule,
    NzDividerModule,
    NzTagModule,
    NzRadioModule,
    NzTreeSelectModule,
    NzDatePickerModule,
    NzTreeModule,
    NzCollapseModule
  ],
  declarations: COMPONENTS
})
export class SysModule {}
